package remsg

import "context"

type Publisher[M any] struct {
}

type Ctx[M any] struct {
}

type Flow struct {
}

func NewPublisher[M any]() *Publisher[M] {

}

func (p *Publisher[M]) Subscribe(ctx context.Context, handler func(*Ctx[M]) error) *Publisher[M] {

}

func (p *Publisher[M]) SubscribeV2(ctx context.Context) Flow {

}

func (p *Publisher[M]) Publish(msg M) error {

}
